<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Promise</title>
</head>
<body>
promise 解决 callback 函数拥堵问题  改善为链式调用 都返回为promise对象
<script>
  let checkLogin = function () {
    return new Promise(function (resolve,reject) {
      let flag = document.cookie.indexOf("userId")>-1?true:false;
      if(flag=true){
        resolve({
            status: 0,
            result: true
          }
        )
      }else{
        reject("程序错误");
      }
    })


  }
  let getUserInfo = ()=>{
    return new Promise((resolve,reject)=>{
      let userInfo = {
        userId:101
      }
      resolve(userInfo)
    })
  }

  //promise 用 then来获取返回的参数
checkLogin().then(function (res) {
  if(res.status == 0){
    console.log("login success");
    //返回 另一个方法来再次进行回调
    return getUserInfo();
  }
}).catch((error)=>{
  console.log(`error:${error}`)
}).then((res2)=>{
  console.log(`userId:${res2.userId}`)
})

  //同时调两个方法,传参是一个数组,后面的返回参数也要用 []接收
  Promise.all([checkLogin(),getUserInfo()]).then(([res1,res2])=>{
    //res1是返回第一个方法的结果,res2是返回第二个方法的结果
    //这样可以 拿到多个方法的返回参数进行操作,他们返回的是两个promise对象
    console.log("promise.all():"+res1.result+";"+res2.userId)

  })
</script>
</body>
</html>
